package dome3;

//public class Card implements Comparable<Card> {
//    public int rank; // 数值
//    public String suit; // 花色
//
//    public Card(int rank, String suit) {
//        this.rank = rank;
//        this.suit = suit;
//    }
//    // 根据数值比较，不管花色
//    // 这里我们认为 null 是最小的
//    @Override
//    public int compareTo(Card o) {
//        if (o == null) {
//            return 1;
//        }
//        return rank - o.rank;
//    }
//
//    public static void main(String[] args) {
//        Card p = new Card(1, "♠");
//        Card q = new Card(2, "♠");
//        Card o = new Card(1, "♠");
//        System.out.println(p.compareTo(o)); // == 0，表示牌相等
//        System.out.println(p.compareTo(q)); // < 0，表示 p 比较小
//        System.out.println(q.compareTo(p)); // > 0，表示 q 比较大
//    }
//}


import java.util.Arrays;
import java.util.Comparator;
import java.util.PriorityQueue;

class Card {
    public int rank; // 数值
    public String suit; // 花色
    public Card(int rank, String suit) {
        this.rank = rank;
        this.suit = suit;
    }
}
class CardComparator implements Comparator<Card> {
    // 根据数值比较，不管花色
    // 里我们认为 null 是最小的
    @Override
    public int compare(Card o1, Card o2) {
        if (o1 == o2) {
            return 0;
        }
        if (o1 == null) {
            return -1;
        }
        if (o2 == null) {
            return 1;
        }
        return o1.rank - o2.rank;
    }
    public static void main(String[] args){
        Card p = new Card(1, "♠");
        Card q = new Card(2, "♠");
        Card o = new Card(1, "♠");
// 定义比较器对象
        CardComparator cmptor = new CardComparator();
// 使用比较器对象进行比较
        System.out.println(cmptor.compare(p, o)); // == 0，表示牌相等
        System.out.println(cmptor.compare(p, q)); // < 0，表示 p 比较小
        System.out.println(cmptor.compare(q, p)); // > 0，表示 q 比较大
    }
}